package com.app.ryjy.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 所学专业分类枚举
 */
@AllArgsConstructor
@Getter
public enum MajorCategoryEnum {
    // 哲学
    PHILOSOPHY("哲学", "010000"),
    // 哲学类
    PHILOSOPHY_TYPE("哲学类", "010100"),
    // 马克思主义理论类
    MARXIST_THEORY("马克思主义理论类", "010200"),
    // 经济学
    ECONOMICS("经济学", "020000"),
    // 经济学类
    ECONOMICS_TYPE("经济学类", "020100"),
    // 工商管理类
    BUSINESS_MANAGEMENT("工商管理类", "020200"),
    // 法学
    LAW("法学", "030000"),
    // 法学类
    LAW_TYPE("法学类", "030100"),
    // 社会学类
    SOCIOLOGY("社会学类", "030200"),
    // 政治学类
    POLITICAL_SCIENCE("政治学类", "030300"),
    // 公安学类
    POLICE_SCIENCE("公安学类", "030400"),
    // 教育学
    EDUCATION("教育学", "040000"),
    // 教育学类
    EDUCATION_TYPE("教育学类", "040100"),
    // 思想政治教育类
    POLITICAL_EDUCATION("思想政治教育类", "040200"),
    // 体育学类
    SPORTS("体育学类", "040300"),
    // 职业技术教育类
    VOCATIONAL_EDUCATION("职业技术教育类", "040400"),
    // 文学
    LITERATURE("文学", "050000"),
    // 中国语言文学类
    CHINESE_LITERATURE("中国语言文学类", "050100"),
    // 外国语言文学类
    FOREIGN_LANGUAGES("外国语言文学类", "050200"),
    // 新闻学类
    JOURNALISM("新闻学类", "050300"),
    // 艺术类(一)
    ART_TYPE_ONE("艺术类(一)", "050400"),
    // 艺术类(二)
    ART_TYPE_TWO("艺术类(二)", "050500"),
    // 历史学
    HISTORY("历史学", "060000"),
    // 历史学类
    HISTORY_TYPE("历史学类", "060100"),
    // 图书信息档案学类
    LIBRARY_INFORMATION("图书信息档案学类", "060200"),
    // 理学
    SCIENCE("理学", "070000"),
    // 数学类
    MATHEMATICS("数学类", "070100"),
    // 物理学类
    PHYSICS("物理学类", "070200"),
    // 化学类
    CHEMISTRY("化学类", "070300"),
    // 生物科学类
    BIOLOGY("生物科学类", "070400"),
    // 天文学类
    ASTRONOMY("天文学类", "070500"),
    // 地质学类
    GEOLOGY("地质学类", "070600"),
    // 地理科学类
    GEOGRAPHY("地理科学类", "070700"),
    // 地球物理学类
    GEOPHYSICS("地球物理学类", "070800"),
    // 大气科学类
    ATMOSPHERIC_SCIENCE("大气科学类", "070900"),
    // 海洋科学类
    OCEAN_SCIENCE("海洋科学类", "071000"),
    // 力学类
    MECHANICS("力学类", "071100"),
    // 信息与电子科学类
    ELECTRONICS("信息与电子科学类", "071200"),
    // 材料科学类
    MATERIALS_SCIENCE("材料科学类", "071300"),
    // 环境科学类
    ENVIRONMENT_SCIENCE("环境科学类", "071400"),
    // 心理学类
    PSYCHOLOGY("心理学类", "071500"),
    // 科技信息与管理类
    SCIENCE_MANAGEMENT("科技信息与管理类", "071600"),
    // 工学
    ENGINEERING("工学", "080000"),
    // 地矿类
    MINERAL_ENGINEERING("地矿类", "080100"),
    // 材料类
    MATERIALS_ENGINEERING("材料类", "080200"),
    // 机械类
    MECHANICAL_ENGINEERING("机械类", "080300"),
    // 仪器仪表类
    INSTRUMENTATION("仪器仪表类", "080400"),
    // 热能核能类
    THERMAL_NUCLEAR_ENGINEERING("热能核能类", "080500"),
    // 电工类
    ELECTRICAL_ENGINEERING("电工类", "080600"),
    // 电子与信息类
    ELECTRONIC_INFORMATION("电子与信息类", "080700"),
    // 土建类
    CIVIL_ENGINEERING("土建类", "080800"),
    // 水利类
    WATER_ENGINEERING("水利类", "080900"),
    // 测绘类
    SURVEYING("测绘类", "081000"),
    // 环境类
    ENVIRONMENTAL_ENGINEERING("环境类", "081100"),
    // 化工与制药类
    CHEMICAL_PHARMACEUTICAL("化工与制药类", "081200"),
    // 轻工粮食食品类
    LIGHT_INDUSTRY("轻工粮食食品类", "081300"),
    // 农业工程类
    AGRICULTURAL_ENGINEERING("农业工程类", "081400"),
    // 林业工程类
    FORESTRY_ENGINEERING("林业工程类", "081500"),
    // 纺织类
    TEXTILES("纺织类", "081600"),
    // 交通运输类
    TRANSPORTATION("交通运输类", "081700"),
    // 航空航天类
    AEROSPACE("航空航天类", "081800"),
    // 兵器类
    WEAPONRY("兵器类", "081900"),
    // 公安技术类
    POLICE_TECHNOLOGY("公安技术类", "082000"),
    // 工程力学类
    ENGINEERING_MECHANICS("工程力学类", "082100"),
    // 管理工程类
    MANAGEMENT_ENGINEERING("管理工程类", "082200"),
    // 农学
    AGRICULTURE("农学", "090000"),
    // 植物生产类
    PLANT_PRODUCTION("植物生产类", "090100"),
    // 森林资源类
    FOREST_RESOURCES("森林资源类", "090200"),
    // 环境保护类
    ENVIRONMENTAL_PROTECTION("环境保护类", "090300"),
    // 动物生产与兽医类
    ANIMAL_VETERINARY("动物生产与兽医类", "090400"),
    // 水产类
    AQUACULTURE("水产类", "090500"),
    // 管理类
    MANAGEMENT("管理类", "090600"),
    // 农业推广类
    AGRICULTURAL_EXTENSION("农业推广类", "090700"),
    // 医学
    MEDICINE("医学", "100000"),
    // 基础医学类
    BASIC_MEDICINE("基础医学类", "100100"),
    // 预防医学类
    PREVENTIVE_MEDICINE("预防医学类", "100200"),
    // 临床医学与医学技术类
    CLINICAL_MEDICINE("临床医学与医学技术类", "100300"),
    // 口腔医学类
    ORAL_MEDICINE("口腔医学类", "100400"),
    // 中医学类
    TRADITIONAL_CHINESE_MEDICINE("中医学类", "100500"),
    // 法医学类
    FORENSIC_MEDICINE("法医学类", "100600"),
    // 护理学类
    NURSING("护理学类", "100700"),
    // 药学类
    PHARMACY("药学类", "100800"),
    // 管理类
    MEDICAL_MANAGEMENT("管理类", "100900"),
    // 军事学
    MILITARY_SCIENCE("军事学", "110000"),
    // 其他学科
    OTHER_DISCIPLINES("其他学科", "990000");

    private final String desc;
    private final String code;

    /**
     * 根据 code 获取 desc
     *
     * @param code code
     * @return desc
     */
    public static String getDescByCode(String code) {
        for (MajorCategoryEnum major : values()) {
            if (major.getCode().equals(code)) {
                return major.getDesc();
            }
        }
        throw new RuntimeException("code 不存在");
    }

    public static void main(String[] args) {
        System.out.println(MajorCategoryEnum.getDescByCode("020100"));  // 输出：经济学类
    }
}
